# -*- coding: UTF-8 -*-
import hotshot, time, os
from django.core.handlers.modpython import ModPythonHandler

PROFILE_DATA_DIR = "/var/log/cmsprofile/"

def handler(req):
    '''
    Ce handler spécial utilise le module hotshot pour stocker des données relatives
    à la performance de votre application.

    Ces données sont stockées dans PROFILE_DATA_DIR. Comme il n'existe aucun moyen
    (à ma connaissance) de rassembler toutes ces données au sein d'un seul et même
    fichier, chaque requête possède son propre fichier de données. Les noms des fichiers
    sont de la forme <url>.<n>.prof où <url> est le chemin d'accès de l'URL (les "/"
    étant remplacés par des ".") et <n> est un timestamp (avec microsecondes) qui
    permet d'éviter que des fichiers existants soient écrasés.

    Utilisez le script gather_profile_stats.py pour rassembler par chemin d'accès toutes
    ces données éparpillées.
    '''
    profname = "%s.%.3f.prof" % (req.uri.strip("/").replace('/', '.'), time.time())
    profname = os.path.join(PROFILE_DATA_DIR, profname)
    prof = hotshot.Profile(profname)
    return prof.runcall(ModPythonHandler(), req)